﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace lxwmvc
{
    public class WeiXin_Models
    {
    }

    /// <summary>
    /// 基础消息
    /// </summary>
    public class Message
    {
        public string MsgId { get; set; }
        public string ToUserName { get; set; }
        public string FromUserName { get; set; }
        public int CreateTime { get; set; }
        public string MsgType { get; set; }
    }

    public class EventMessage
    {
        public string ToUserName { get; set; }
        public string FromUserName { get; set; }
        public int CreateTime { get; set; }
        public string MsgType { get; set; }
        public string Event { get; set; }
    }

    public class subscribeEventMessage : EventMessage
    {
        public string EventKey { get; set; }
        public string Ticket { get; set; }
    }

    public class SCANEventMessage : EventMessage
    {
        public string EventKey { get; set; }
        public string Ticket { get; set; }
    }   

    public class LOCATIONEventMessage : EventMessage
    {
        public decimal Latitude { get; set; }
        public decimal Longitude { get; set; }
        public decimal Precision { get; set; }
    }

    public class CLICKEventMessage : EventMessage
    {
        public string EventKey { get; set; }
    }
    public class VIEWEventMessage : EventMessage
    {
        public string EventKey { get; set; }
    }

    public class textMessage : Message
    {
        public string Content { get; set; }
    }
    public class imageMessage : Message
    {
        public string PicUrl { get; set; }
        public string MediaId { get; set; }
    }
    public class voiceMessage : Message
    {
        public string MediaId { get; set; }
        public string Format { get; set; }
    }
    public class videoMessage : Message
    {
        public string MediaId { get; set; }
        public string ThumbMediaId { get; set; }
    }
    public class shortvideoMessage : Message
    {
        public string MediaId { get; set; }
        public string ThumbMediaId { get; set; }
    }
    public class locationMessage : Message
    {
        public decimal Location_X { get; set; }
        public decimal Location_Y { get; set; }
        public decimal Scale { get; set; }
        public string Label { get; set; }
    }
    public class linkMessage : Message
    {
        public string Title { get; set; }
        public string Description { get; set; }
        public string Url { get; set; }
    }

    public class Token
    {
        public string access_token { get; set; }
        public int expires_in { get; set; }
    }

    public class Ticket
    {
        public int errcode { get; set; }
        public string errmsg { get; set; }
        public string ticket { get; set; }
        public int expires_in { get; set; }
    }

    public class Error
    {
        public int errcode { get; set; }
        public string errmsg { get; set; }
    }

    public class getcallbackip
    {
        public List<string> ip_list { get; set; }
    }

    //这里不用是三种情况的返回信息，先用
    
    /// <summary>
    /// 这个是用code换区 access_token
    /// 如果用户未关注，获取的信息可能不存在unionid
    /// 只有在用户将公众号绑定到微信开放平台帐号后，才会出现该字段。详见：获取用户个人信息（UnionID机制）
    /// </summary>
    public class RetWebAccess_Token
    {
        public string access_token { get; set; }
        public int expires_in { get; set; }
        public string refresh_token { get; set; }
        public string openid { get; set; }
        public string scope { get; set; }
        public string unionid { get; set; }
    }

    /// <summary>
    /// 通过基础access_token 获取用户信息。
    /// </summary>
    public class RetInfo
    {
        public int subscribe { get; set; }
        public string openid { get; set; }
        public string nickname { get; set; }
        public int sex { get; set; }
        public string language { get; set; }
        public string city { get; set; }

        public string province { get; set; }
        public string country { get; set; }
        public string headimgurl { get; set; }

        public int subscribe_time { get; set; }
        public string unionid { get; set; }
        public string remark { get; set; }

        public int groupid { get; set; }
    }

    public class QYH_USERID
    {
        public string UserId { get; set; }
        public string DeviceId { get; set; }
    }
    public class QYH_OPENID
    {
        public string OpenId { get; set; }
        public string DeviceId { get; set; }
    }

    public class QYH_USEROROPEN
    {
        public string UserId { get; set; }
        public string DeviceId { get; set; }
        public string OpenId { get; set; }
    }

    public class QYH_UserIdToOpenId
    {
        public string openid { get; set; }
        public int errcode { get; set; }
        public string errmsg { get; set; }
        public string appid { get; set; }
    }

 
//    {
//    "subscribe": 1, 
//    "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
//    "nickname": "Band", 
//    "sex": 1, 
//    "language": "zh_CN", 
//    "city": "广州", 
//    "province": "广东", 
//    "country": "中国", 
//    "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", 
//   "subscribe_time": 1382694957,
//   "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
//   "remark": "",
//   "groupid": 0
//}


    /// <summary>
    /// 通过网页授权access_token 加openid获取用户信息
    /// </summary>
    public class RetUserInfo
    {
        public string openid { get; set; }
        public string nickname { get; set; }
        public int sex { get; set; }
        public string province { get; set; }
        public string city { get; set; }
        public string country { get; set; }
        public string headimgurl { get; set; }
        public List<string> privilege { get; set; }
        public string unionid { get; set; }

        public string language { get; set; }
    }

    public class QYH_RetUserInfo
    {
        public string errcode { get; set; }
        public string errmsg { get; set; }
        public string userid { get; set; }
        public string name { get; set; }
        public List<int> department { get; set; }
        public string position { get; set; }
        public string mobile { get; set; }
        public int gender { get; set; }
        public string email { get; set; }

        public string weixinid { get; set; }
        public string avatar { get; set; }
        public int status { get; set; }
        public extattr extattr { get; set; }
    }

    public class extattr
    {
        public List<attrs> attrs;
    }

    public class attrs 
    {
        public string name{get;set;}
        public string value { get; set; }
    }

    //    {
    //   "openid":" OPENID",
    //   " nickname": NICKNAME,
    //   "sex":"1",
    //   "province":"PROVINCE"
    //   "city":"CITY",
    //   "country":"COUNTRY",
    //    "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", 
    //    "privilege":[
    //    "PRIVILEGE1"
    //    "PRIVILEGE2"
    //    ],
    //    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
    //}
}

// -1	系统繁忙，此时请开发者稍候再试
//0	请求成功
//40001	获取access_token时AppSecret错误，或者access_token无效。请开发者认真比对AppSecret的正确性，或查看是否正在为恰当的公众号调用接口
//40002	不合法的凭证类型
//40003	不合法的OpenID，请开发者确认OpenID（该用户）是否已关注公众号，或是否是其他公众号的OpenID
//40004	不合法的媒体文件类型
//40005	不合法的文件类型
//40006	不合法的文件大小
//40007	不合法的媒体文件id
//40008	不合法的消息类型
//40009	不合法的图片文件大小
//40010	不合法的语音文件大小
//40011	不合法的视频文件大小
//40012	不合法的缩略图文件大小
//40013	不合法的AppID，请开发者检查AppID的正确性，避免异常字符，注意大小写
//40014	不合法的access_token，请开发者认真比对access_token的有效性（如是否过期），或查看是否正在为恰当的公众号调用接口
//40015	不合法的菜单类型
//40016	不合法的按钮个数
//40017	不合法的按钮个数
//40018	不合法的按钮名字长度
//40019	不合法的按钮KEY长度
//40020	不合法的按钮URL长度
//40021	不合法的菜单版本号
//40022	不合法的子菜单级数
//40023	不合法的子菜单按钮个数
//40024	不合法的子菜单按钮类型
//40025	不合法的子菜单按钮名字长度
//40026	不合法的子菜单按钮KEY长度
//40027	不合法的子菜单按钮URL长度
//40028	不合法的自定义菜单使用用户
//40029	不合法的oauth_code
//40030	不合法的refresh_token
//40031	不合法的openid列表
//40032	不合法的openid列表长度
//40033	不合法的请求字符，不能包含\uxxxx格式的字符
//40035	不合法的参数
//40038	不合法的请求格式
//40039	不合法的URL长度
//40050	不合法的分组id
//40051	分组名字不合法
//40117	分组名字不合法
//40118	media_id大小不合法
//40119	button类型错误
//40120	button类型错误
//40121	不合法的media_id类型
//40132	微信号不合法
//40137	不支持的图片格式
//41001	缺少access_token参数
//41002	缺少appid参数
//41003	缺少refresh_token参数
//41004	缺少secret参数
//41005	缺少多媒体文件数据
//41006	缺少media_id参数
//41007	缺少子菜单数据
//41008	缺少oauth code
//41009	缺少openid
//42001	access_token超时，请检查access_token的有效期，请参考基础支持-获取access_token中，对access_token的详细机制说明
//42002	refresh_token超时
//42003	oauth_code超时
//43001	需要GET请求
//43002	需要POST请求
//43003	需要HTTPS请求
//43004	需要接收者关注
//43005	需要好友关系
//44001	多媒体文件为空
//44002	POST的数据包为空
//44003	图文消息内容为空
//44004	文本消息内容为空
//45001	多媒体文件大小超过限制
//45002	消息内容超过限制
//45003	标题字段超过限制
//45004	描述字段超过限制
//45005	链接字段超过限制
//45006	图片链接字段超过限制
//45007	语音播放时间超过限制
//45008	图文消息超过限制
//45009	接口调用超过限制
//45010	创建菜单个数超过限制
//45015	回复时间超过限制
//45016	系统分组，不允许修改
//45017	分组名字过长
//45018	分组数量超过上限
//46001	不存在媒体数据
//46002	不存在的菜单版本
//46003	不存在的菜单数据
//46004	不存在的用户
//47001	解析JSON/XML内容错误
//48001	api功能未授权，请确认公众号已获得该接口，可以在公众平台官网-开发者中心页中查看接口权限
//50001	用户未授权该api
//50002	用户受限，可能是违规后接口被封禁
//61451	参数错误(invalid parameter)
//61452	无效客服账号(invalid kf_account)
//61453	客服帐号已存在(kf_account exsited)
//61454	客服帐号名长度超过限制(仅允许10个英文字符，不包括@及@后的公众号的微信号)(invalid kf_acount length)
//61455	客服帐号名包含非法字符(仅允许英文+数字)(illegal character in kf_account)
//61456	客服帐号个数超过限制(10个客服账号)(kf_account count exceeded)
//61457	无效头像文件类型(invalid file type)
//61450	系统错误(system error)
//61500	日期格式错误
//61501	日期范围错误
//9001001	POST数据参数不合法
//9001002	远端服务不可用
//9001003	Ticket不合法
//9001004	获取摇周边用户信息失败
//9001005	获取商户信息失败
//9001006	获取OpenID失败
//9001007	上传文件缺失
//9001008	上传素材的文件类型不合法
//9001009	上传素材的文件尺寸不合法
//9001010	上传失败
//9001020	帐号不合法
//9001021	已有设备激活率低于50%，不能新增设备
//9001022	设备申请数不合法，必须为大于0的数字
//9001023	已存在审核中的设备ID申请
//9001024	一次查询设备ID数量不能超过50
//9001025	设备ID不合法
//9001026	页面ID不合法
//9001027	页面参数不合法
//9001028	一次删除页面ID数量不能超过10
//9001029	页面已应用在设备中，请先解除应用关系再删除
//9001030	一次查询页面ID数量不能超过50
//9001031	时间区间不合法
//9001032	保存设备与页面的绑定关系参数错误
//9001033	门店ID不合法
//9001034	设备备注信息过长
//9001035	设备申请参数不合法
//9001036	查询起始值begin不合法
